home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / mail / metamail / CSCW-ATOMICMAIL.txt < prev    next >
Text File  |  1992-12-22  |  37KB  |  645 lines

  1. Computational Mail as Network Infrastructure/Borenstein                1
  2.  
  3.  
  4. Computational Mail as Network Infrastructure 
  5. for Computer-Supported Cooperative Work
  6.  
  7.  
  8. Nathaniel S. Borenstein
  9. Bellcore
  10.  
  11. Abstract
  12.  
  13. Computational email -- the embedding of programs within electronic mail 
  14. messages -- is proposed as a technology that may help to solve some of the 
  15. key problems in deploying successful applications for computer-supported 
  16. cooperative work.  In particular, computational email promises to alleviate 
  17. the problem of remote installation at separately-administered sites, the 
  18. problem of getting users to "buy in" to new applications, and the problem of 
  19. extremely heterogeneous user interaction environments.  In order for 
  20. computational email to be practical, however, key problems of security and 
  21. portability must be addressed, problems for which this research offers new 
  22. solutions.    This paper outlines the promise of this new technology, the 
  23. solutions to the key technical problems, and the areas where further work 
  24. and application development are needed.
  25.  
  26. The Goal:  Distributed Computer-Supported Cooperative Work  
  27.  
  28. In recent years, increasing attention has been focused on the problem of 
  29. computer-supported cooperative work (CSCW).  This work, broadly defined, is 
  30. the attempt to provide computer-based solutions to the problems that arise 
  31. when two or more people attempt to cooperate to perform a task or solve a 
  32. problem.  
  33.  
  34. The simplest CSCW systems, from an architectural perspective, are those in 
  35. which the cooperating individuals share a computerized application on a 
  36. single machine, perhaps even using a single process.  In such systems, many 
  37. problems of coordination and communication can be avoided.  However, such 
  38. systems are increasingly implausible for solving the problems of real-world 
  39. users, who may be widely separated geographically and may have significant 
  40. amounts of computing power on their individual desks.  Truly distributed 
  41. applications seem natural in the face of a high ratio of computing power to 
  42. available communications bandwidth.  For many cooperative applications, 
  43. distributed solutions seem inevitable, and indeed a growing number of CSCW 
  44. prototypes are implemented in a distributed manner.
  45.  
  46. Unfortunately, the practical success of such systems to date has been 
  47. extremely limited.  This paper begins with a discussion of three key problems 
  48. that have inhibited the widespread use of distributed applications for CSCW.  
  49. Following this, the paper offers a description of a new technology, 
  50. "computational electronic mail (email)", that offers a potential solution to 
  51. these problems.  Problems that have, in the past, rendered computational 
  52. email impractical are discussed, along with proposed solutions to these 
  53. problems.  Following this is a discussion of the author's particular realization 
  54. of these solutions, a language designed specifically for the unusual 
  55. requirements of computational email.  The design of this language and its 
  56. prototype implementation are presented as a "proof-of-concept" for the 
  57. practicality of computational email.  The preliminary results of that 
  58. implementation, and its implication for future systems, are discussed briefly 
  59. at the end of the paper.
  60.  
  61. The Practical Difficulty of Widely-Distributed User-Oriented 
  62. Computation
  63.  
  64. When building a user-oriented distributed application, the programmer faces 
  65. a special set of constraints above and beyond the usual substantial hurdles 
  66. entailed in every new user interface.  In particular, he or she must solve at 
  67. least three problems that are not generally faced by single-user or single-
  68. machine applications:
  69.  
  70.   I.  The Problem of Remote Installation
  71.  
  72. In order for an application to be used by multiple users at multiple sites, it 
  73. must, perforce, be installed at all such sites.  This is not a problem for 
  74. applications in which all of the potential users are eager and knowledgeable 
  75. participants, in which case they can be counted on either to install the 
  76. software themselves or request such installation by the local authorities.  
  77. However, this is by no means the normal situation for distributed 
  78. applications.  In many distributed systems, as noted by Grudin [Grudin, 1990], 
  79. there is a substantial imbalance between the motivations of the various 
  80. particpants.  A common scenario, for example, involves one user asking a 
  81. question of a group of users.  In such a situation, it is much more reasonable 
  82. to expect the questioner to ensure the local installation of some CSCW 
  83. software than to expect it of the people being asked.  
  84.  
  85. In short, the participants in a cooperative application often have widely 
  86. differing degrees of motivation, and are therefore likely to exert similarly 
  87. varying degrees of persistence and effort in order to ensure that the software 
  88. for that application is locally installed.  Almost inevitably, this leads to a 
  89. situation in which the highly-motivated individuals find themselves 
  90. wheedling, cajoling, or even begging the less motivated individuals to install 
  91. the software on their systems.  Without extreme persistence, CSCW 
  92. applications can fail without ever really being tried, simply because a 
  93. sufficient installed user base was never created.
  94.  
  95.   II.  The Problem of User Buy-In
  96.  
  97. Related to the problem of getting software installed at widely distributed 
  98. sites is the problem of getting people to actually use the software once it is 
  99. installed.  Because of the differing motivations of the participants, it is likely 
  100. that some users are far more likely than others to actually run the software.  
  101. As Grudin has noted, the users who are most crucial to the success of a CSCW 
  102. application often have the least personal stake in using it.  For example, in 
  103. any system that seeks to help novices get information from experts, the 
  104. experts who know the answers have relatively little motivation to provide it.  
  105. Some systems, such as the Answer Garden of Malone and Ackerman 
  106. [Ackerman and Malone, 1990]  rely on the good will (and memory) of the 
  107. experts to periodically run a program to see if anyone needs help.  Since the 
  108. necessary combination of good will, reliability, and memory are relatively 
  109. rare, this requirement can be crippling to the practical success of a system. 
  110.  
  111.   III.  The Problem of Heterogeneous User Environments
  112.  
  113. For better or worse, there are a wide variety of user interaction environments 
  114. in use today, and this seems unlikely to change in the foreseeable future.  
  115. Potential participants in a cooperative application may be running on dumb 
  116. terminals, Macintoshes, personal computers running MS-DOS with or without 
  117. MS-Windows, OS/2 with Presentation Manager, UNIX with X11, SunTools, 
  118. NeWS, or various other environments.  It is unlikely, to say the least, that the 
  119. purveyors of a cooperative application will be able to dictate, to all potential 
  120. users of the system, a single interaction environment.  (Malone and 
  121. Ackerman's Answer Garden was an exception in this regard:  they were able 
  122. to assume that all users were running X11, for the simple reason that their 
  123. application domain was questions and answers about the X11 system itself.)
  124.  
  125. In order for a distributed application to see widespread use and acceptance, it 
  126. will have to run on a very wide variety of platforms, probably including all 
  127. the ones just mentioned.  But, as programmers well know, getting any piece of 
  128. software to work on such a variety of platforms is a major task in itself, 
  129. above and beyond the main thrust of the cooperative application.
  130.  
  131. Needed:  A Platform On Which to Build
  132.  
  133. If all of these problems afflict a wide variety of cooperative applications, it 
  134. seems natural to seek a mechanism to solve them for the entire class of 
  135. applications, rather than for each application individually.  What is really 
  136. needed is a platform on which distributed applications can be built without 
  137. concern for the problems of distribution, user buy-in, and heterogeneous 
  138. interaction environment.  
  139.  
  140. If a computational engine can be defined in such a way as to support the 
  141. requirements of many cooperative applications, yet without commitment to a 
  142. particular user interaction technology, and if that single engine can somehow 
  143. overcome the first problem, the problem of remote installation, then neither 
  144. the problem of remote installation nor the problem of heterogeneous user 
  145. environments will afflict applications that are built on top of such an engine.  
  146. This leaves the problem of user buy-in:  assuming such an engine were 
  147. defined and widely implemented and installed, how could users be persuaded 
  148. to use it regularly?  One solution is to "piggyback" the engine on top of a 
  149. technology that is already at the fingertips of most computer users today, 
  150. electronic mail.
  151.  
  152. The Case for Computational Email
  153.  
  154. The basic idea of computational email is very simple:  Instead of sending 
  155. plain text, or even multimedia information, in a mail message, what is sent 
  156. instead is a computer program in a well-defined language.  At the recipient's 
  157. end, the mail-reading software recognizes (via a well-defined mechanism) 
  158. that the mail message is intended to be executed rather than read, and 
  159. (accordingly) executes it.  Thus, when the recipient reads a mail message, the 
  160. message might first show him some introductory text, and then engage him in 
  161. a question/answer dialogue.  For example, it might ask him to select which of 
  162. ten proposed dates and times he can make it to a meeting.  The program 
  163. might then mail the answers back to a network server that was collecting 
  164. such answers from several such people, in order to find a meeting time 
  165. suitable to all of them.
  166.  
  167. The greatest appeal in the idea of embedding applications within email is the 
  168. simple way it solves the problem of user buy-in.  Because nearly everyone 
  169. who uses a networked computer nowadays is likely to be a regular reader of 
  170. email, an application that is delivered to a user in the form of email requires 
  171. no special effort or feat of memory, on the part of the recipient, in order to 
  172. run it.  Most important, remote users of a distributed application can, by 
  173. embedding computation in email, solicit information or participation from a 
  174. user who does not yet know that his participation is required.
  175.  
  176. While the idea of embedding computation in email suffers no less than any 
  177. other application from the problems of distributing the initial software and 
  178. devising an interaction mechanism that works regardless of interaction 
  179. environment, it can be designed in such a way that the solution of the 
  180. problem for computational email makes the problem simply nonexistent for 
  181. applications built on a platform of computational email.  In other words, 
  182. solving the remote installation once, for a computational email infrastructure, 
  183. will solve it for a whole class of follow-on applications.
  184.  
  185. Prior Art
  186.  
  187. The idea of computational or "active" mail is sufficiently simple as to have 
  188. been mentioned, in the research literature, at least fifteen years ago, in a 
  189. paper by Anderson and Gillogly [Anderson and Gillogly, 1976], who discussed 
  190. the concept without implementing it.   Several researchers have implemented 
  191. computational email, or "active messaging," including Vittal [Vittal, 1981], 
  192. Hogg [Hogg, 1985], Borenstein and Hansen [Borenstein, 1991a, and Hansen, 
  193. 1990], and Shepherd [Shepherd, 1990].  Each of these systems demonstrated 
  194. facilities for embedding computation and email, and several offered 
  195. convincing evidence for the general utility of such a facility.
  196.  
  197. Nonetheless, all of the prior work has suffered from at least two of four 
  198. crucial flaws, which have prevented a generalized facility for computational 
  199. email from becoming widely available:
  200.  
  201. 1.  Lack of generality.  Some systems, notably the Andrew system 
  202. without Ness [Borenstein, 1991a], offered only highly specialized 
  203. facilities for active messages, such as special-purpose "voting" messages.  
  204. Though useful, such facilities do not provide a platform on which larger 
  205. applications can be built.
  206.  
  207. 2.  Lack of conformity to the standard email transport model.  Some 
  208. systems, notably Imail [Hogg, 1985], did not use asynchronous store-
  209. and-forward delivery, and thus might arguably not be called electronic 
  210. mail.  In particular, Imail provided a very powerful active messaging 
  211. language, but could only be used to exchange messages between 
  212. authenticated users of a single machine.  Since most email crosses 
  213. insecure network connections, such mechanisms do not generalize well 
  214. to the real world.
  215.  
  216. 3.  Lack of security.  Some systems, such as R2D2 [Vittal, 1990] and 
  217. Andrew with Ness [Hansen, 1990], provided general-purpose 
  218. mechanisms that were exceedingly dangerous.  In such systems, a user 
  219. is typically asked a question such as "There is a program here.  Do you 
  220. want to try running it?"  If the user answers in the affirmative, he may 
  221. have risked the destruction of all his files.  This is probably 
  222. unacceptable to most users in the real world.
  223.  
  224. 4.  Lack of portability.  Computational mail that provides a rich user 
  225. interface mechanism, such as Andrew with Ness [Hansen, 1990], or 
  226. Strudel [Shepherd, 1990], has typically been extremely non-portable 
  227. with regard to user interaction environments.  With Andrew messages, 
  228. for example, the interaction mechanisms only worked properly if the 
  229. recipient read his mail using the Andrew Messages program, under the 
  230. X11 or WM window systems.  In a highly heterogeneous world, such 
  231. restrictions are not acceptable to many communities.
  232.  
  233. Thus, although the existing literature amply documents the continuing 
  234. fascination that computational email holds for email researchers, it fails to 
  235. provide a practical model for making computational email a part of the 
  236. general shared infrastructure of a large, diverse, and not entirely trusting 
  237. network community.  This is the starting point for the research reported here.
  238.  
  239. Portability Across User Environments
  240.  
  241. Stated in the most general and ambitious manner, the goal of making user 
  242. interfaces entirely portable between a wide range of user interface 
  243. environments is probably impossible.  However, a lesser goal will suffice for 
  244. computational email.
  245.  
  246. A significant number of applications can be built using user interface 
  247. primitives that require only textual input and output, and that are specified 
  248. in a manner that assume nothing about the capabilities of the user interaction 
  249. environment.  Examples of such primitives might include:
  250.  
  251. 1.  Get text (a string) from the user.
  252.  
  253. 2.  Get a number from the user.
  254.  
  255. 3.  Ask the user a multiple choice question.
  256.  
  257. 4.  Fill in the blanks in a form.
  258.  
  259. 5.  Display a chunk of text to the user.
  260.  
  261. As long as the language primitives refer only to the information that must be 
  262. given to or obtained from the user, and make no reference to the technologies 
  263. by which that information is to be given or obtained, and as long as the 
  264. information can be expressed as simple text, such primitives can be 
  265. implemented in virtually any interaction environment.  For example, a 
  266. multiple choice question might produce a dialog box for a user running in a 
  267. graphical environment, while it might produce a numbered list on a teletype, 
  268. with a request to "choose a number from 1 to 7."  
  269.  
  270. What matters, in such primitives, is that the mechanism by which the 
  271. information is conveyed is left unspecified by the definition of the primitive.  
  272. Given that fact, a user can expect to compose and test a program in one 
  273. environment, secure in the knowledge that it will behave well even in a very 
  274. different environment, where the interpreter understands the same language, 
  275. even though it might interact with the user rather differently.
  276.  
  277. Security of Computational Email
  278.  
  279. The security of a computational email message is an area where virtually no 
  280. compromise is acceptable.  This might not have been true a few years ago, but 
  281. well-publicized episodes such as the Internet Worm [Spafford, 1989] have 
  282. made most computer users highly conscious of, and concerned about, the 
  283. security of their computer systems.
  284.  
  285. However, despite such concerns, it must be explicitly recognized that certain 
  286. risks are routinely accepted by the general computing public.  Conventional 
  287. electronic mail, for example, is not without risks.  The most common risk in 
  288. current mail systems is resource deprivation.  For example, by repeatedly 
  289. sending large mail messages, any network user can often fill the disk of 
  290. another, depriving him (at least temporarily) of the use of that disk.  This can 
  291. often be done completely anonymously, and can be a minor nuisance or a 
  292. major problem, depending on what else shares the disk.  Similarly, a program 
  293. that uses mail protocols on a network can, by playing "cat and mouse" with 
  294. someone else's mail transport agent, effectively tie up much of the bandwidth 
  295. available on a network, or even a substantial portion of the computational 
  296. power of the remote processor.
  297.  
  298. Beyond resource deprivation, an even more insidious risk in mail systems is 
  299. that they are vulnerable to intruders using essentially non-technical means.  
  300. Recently, many users on the Internet were told, via official looking mail, that 
  301. they had to change their passwords to "SYSTEST01" immediately; apparently 
  302. more than a few complied.  The infamous "Christmas Tree Virus" that afflicted 
  303. the IBM networks a few years back was entirely based on social engineering:  
  304. Users received mail that appeared to come from someone they knew, saying 
  305. "here's a neat program that will make an animated Christmas Tree on your 
  306. screen."  When executed, the program did exactly that, thus avoiding 
  307. suspicion, but it also sent copies of itself to all of the users' regular 
  308. correspondents.
  309.  
  310. Finally, existing mail systems, like all network software, are vulnerable to 
  311. security problems through bugs.  The Internet worm, for example, exploited a 
  312. bug in a mail transport program as one of several mechanisms for 
  313. transporting itself.
  314.  
  315. The point of the foregoing discussion is not to frighten the reader out of ever 
  316. using email again, but rather to point out that a "risk free" solution is 
  317. chimerical.  A more realistic security goal for computational email might be 
  318. characterized as follows:  Computational email should entail no security 
  319. problems that are worse, either in kind or in degree, than the problems that 
  320. afflict ordinary (textual) email.  Given such a goal, we may begin by 
  321. characterizing the potential risks into three broad categories:
  322.  
  323. 1.  Destruction of Resources (e.g. files)
  324.  
  325. 2.  Theft of Resources (e.g. private files)
  326.  
  327. 3.  Deprivation of Resources (e.g. filling up a disk or tying up a CPU)
  328.  
  329. To understand how these problems can be addressed, it is instructive to 
  330. consider an analogy.  Imagine, for a moment, that somewhere in the 
  331. basement of the Pentagon there are two computers.  They are identical 
  332. hardware, and they run identical software; they are as alike as two peas in a 
  333. pod.  On each of them, there is an executable procedure called 
  334. "DestroyBaghdad".  On one of the machines, executing this procedure does 
  335. nothing.  On the other, the effects of executing the procedure are disastrous, 
  336. at least for the citizens of Iraq.  The only difference between the two 
  337. machines is a single wire coming out of the back of the second machine.1
  338.  
  339. The point, of course, is that nothing inherent to a computational language is 
  340. dangerous; danger is posed only insofar as the effects of executing statements 
  341. in a language include "side-effects" in the external world.  If all the "wires" 
  342. connecting a computational language to the outside world are cut, then 
  343. executing programs in that language is harmless.  (An exception to this claim 
  344. is that such a program can still tie up the CPU, virtual memory, or swap space 
  345. on a machine by going into an infinite loop; this can be handled via resource 
  346. limitations.)
  347.  
  348. More concretely, if one starts with a conventional programming language, 
  349. such as LISP [Steele, 1990], and removes all input and output from the 
  350. language (including not only input and output to and from the user, but also 
  351. to and from files, other processes, and arbitrary memory locations which 
  352. might be connected with physical devices), one is left with a language without 
  353. "wires" to the outside world.  No matter what can be expressed in such a 
  354. language, it can do no harm to the outside world.
  355.  
  356. Unfortunately, though it can do no harm, it can do little good, either.  So the 
  357. task of devising a secure language for computational email reduces, in 
  358. practice, to the construction of a secure input/output mechanism for a 
  359. conventional language.  Devising such a mechanism is really just a matter of 
  360. judicious trade-offs.  For example, one can specify that the language has no 
  361. general-purpose access to the file system, but has a limited form of access to 
  362. a subset of the file system.  In the system to be described below, programs 
  363. have access only to a restricted subdirectory of the user's files, and the 
  364. interpreter is expected to ensure that no "tricks" (such as, in UNIX, the use of 
  365. ".." or symbolic links) can be used to access files outside that area.  Within 
  366. that restricted area, programs are additionally restricted in their ability to 
  367. overwrite existing files, and in the number and size of the files they can 
  368. create.  In such a way, the potential harm to the file system that is caused by 
  369. computational email is not greater than the disk-filling potential of textual 
  370. email.  Similar restrictions are applied to other input/output processes, 
  371. including sending mail.  Some security constraints also apply to user 
  372. interaction:  for example, in order to prevent subversion through the clever 
  373. exploitation of "intelligent" terminals, input and output is restricted to 
  374. printable characters.
  375.  
  376. Heterogeneous Mail Reading Software
  377.  
  378. A major impediment to any enhancements to electronic mail systems is the 
  379. tyranny of the lowest common denominator.  Multimedia mail systems such 
  380. as Andrew [Borenstein, 1991a] and Diamond [Forsdick, 1984] have long 
  381. suffered from the fact that, in the absence of widely accepted standards for 
  382. multimedia mail formats, most email traffic will necessarily be plain text, 
  383. even for users of multimedia systems, because most of their correspondents 
  384. will not be users of compatible systems.  
  385.  
  386. The same problem affects any attempt to promote the use of computational 
  387. email.  In order for such a system to be widely used, it must not require the 
  388. use of a special mail-reading tool.  Instead, a mechanism is needed whereby a 
  389. wide variety of mail-reading tools can easily be given the capability to handle 
  390. computational email.
  391.  
  392. Such a mechanism has been prototyped by the author, and is described 
  393. elsewhere [Borenstein, 1991b].  Its essence, however, is simple.  Each mail-
  394. reading user interface is modified in a small but crucial way:  it is modified so 
  395. that, whenever a user requests to see the body of a message, the software 
  396. first checks to see whether or not the message is plain text.  (In Internet mail, 
  397. this is done by checking the Content-type header field.)  If it is not plain text, 
  398. then the body is not directly displayed; instead, an external program called 
  399. metamail is invoked.  The metamail program is a simple switch that compares 
  400. the content-type of the current message to a configuration file (mailcap file) 
  401. that tells how various types of mail can be handled at the local site.  If a 
  402. handler is found for the current message type, the message is passed off to 
  403. that handler for presentation to the user.  Otherwise the user is informed 
  404. about the unrecognized data, rather than shown the (probably 
  405. incomprehensible) raw data stream.
  406.  
  407. Given this mechanism, it is easy to integrate computational email into a wide 
  408. variety of mail-reading agents.  Once those agents have been modified to use 
  409. the metamail software, as described above, it is simply a matter of installing 
  410. an interpreter for the computation mail language, and adding an appropriate 
  411. line to the local mailcap file.
  412.  
  413. ATOMICMAIL:  A Practical System for Computational Email
  414.  
  415. In accordance with the ideas described above, the author has designed a 
  416. language suitable for embedding computation in electronic mail, known as 
  417. ATOMICMAIL.2  The ATOMICMAIL software is designed to provide a secure 
  418. and portable language for distributed applications that use electronic mail as 
  419. a transport mechanism, or implement what might be called "User to User 
  420. Remote Procedure Call."
  421.  
  422. ATOMICMAIL Language Definition
  423.  
  424. ATOMICMAIL uses LISP [Steele, 1990] as its basic language model.  There is 
  425. nothing essential about LISP for this purpose, although it is a very clean 
  426. interpreted language, which eases the validation of the security mechanisms.  
  427. (It would be considerably harder to be sure about the security of a compiled 
  428. language, and particularly one like C [Kernighan and Ritchie, 1988] that 
  429. includes mechanisms (e.g. pointers) for accessing arbitrary memory locations.)  
  430. Of course, LISP is just a starting point.  As mentioned before, all input and 
  431. output facilities were removed from the basic language and replaced with 
  432. input and output mechanisms that did not compromise security and that were 
  433. portable to virtually any user interaction environment.
  434.  
  435. Thus, for example, LISP's READ primitive is gone, but new primitives such as 
  436. GETSTRING and GETBOOLEAN are defined.  Similarly, new file system 
  437. primitives permit a strictly limited access to a circumscribed local file system.
  438.  
  439. A complete specification of the ATOMICMAIL language is too lengthy and 
  440. detailed to be included here.  The language is, however, rigorously specified 
  441. in [Borenstein, 1990].  Figure 1 shows a small ATOMICMAIL program.
  442.  
  443. The Bellcore Prototype ATOMICMAIL Interpreter
  444.  
  445. Although a computational email language should be designed for portability 
  446. and abstraction of user interface, an implementation (interpreter) must 
  447. inevitably be grounded in some particular user interaction environment.  
  448. Based on the realities of the heterogeneous environment at Bellcore, the 
  449. initial ATOMICMAIL interpreter was written to use the curses library 
  450. [Arnold, 1984] for its user interface.  The prototype interpreter will, 
  451. therefore, run on any machine that is (or can emulate) a UNIX terminal.  
  452. Under window systems such as X11, a terminal emulator window is used.  
  453. This architecture clearly sacrifices a good deal of potential usability, but it 
  454. ensures that the facilities of computational email will be available to the 
  455. widest possible number of users.  A graphical (X11) interpreter for the same 
  456. ATOMICMAIL language is also planned.  The prototype ATOMICMAIL 
  457. interpreter uses, as its basic LISP engine, the Embedded LISP Interpreter 
  458. (ELI) from the Andrew Message System [Borenstein, 1991a].
  459.  
  460. Like any network service, the implementation of a computational email 
  461. system may be less secure than its specification.  A great deal of attention has 
  462. been paid, in the design of ATOMICMAIL, to ensure that there would be no 
  463. serious security problems in a hypothetical perfect implementation.  No 
  464. claims are made, however, that the prototype is such a perfect 
  465. implementation.  It seems likely that an ATOMICMAIL implementation is 
  466. neither more nor less likely to contain unexpected and accidental security 
  467. risks than any other network service software.  
  468.  
  469. Figures 2 through 4 show the prototype ATOMICMAIL interpreter at work.
  470.  
  471. As of September, 1991, the ATOMICMAIL software has been deployed in at 
  472. least four different laboratories at Bellcore.  It is available to universities with 
  473. a royalty-free license for non-commercial use.
  474.  
  475. Initial Uses of ATOMICMAIL
  476.  
  477. The initial deployment of ATOMICMAIL has demonstrated that computational 
  478. email can be made to work portably and securely.   It has not, however, 
  479. proven that such a mechanism is worthwhile.  Before such a claim can be 
  480. made, it is necessary to have one or more substantial applications that are 
  481. highly valued by the user community.  While it is too early to evaluate their 
  482. overall utility, six applications have been prototyped at Bellcore:  a survey 
  483. generator, a meeting scheduler, a document distributor, an information finder, 
  484. an activist alert mechanism, and a distributed mail-based game.
  485.  
  486. The survey generator is a tool for generating simple surveys with 
  487. ATOMICMAIL.  With this tool, the user simply enters a set of questions (fill in 
  488. the blank, multiple choice, etc.) and the mail addresses to which he wants the 
  489. questions sent.  The recipients are surveyed interactively by an 
  490. ATOMICMAIL message, which then sends the response back as normal 
  491. electronic mail, or (optionally) sends it to a process which collates the results 
  492. and sends back only a high-level summary.  
  493.  
  494. The meeting scheduler allows the person calling a meeting to specify the 
  495. purpose of the meeting, a list of participants, and a set of possible dates and 
  496. times for the meeting.  Each participant is surveyed via ATOMICMAIL, and 
  497. the results are collected and returned to the originator as a summary that 
  498. quickly shows which times, if any, everyone can make it.
  499.  
  500. The document distributor is a tool that makes it easy for someone who is 
  501. distributing documents to generate an ATOMICMAIL message that offers 
  502. recipients a scrollable list of document titles.  When a recipient selects a title, 
  503. he is shown an abstract of the document and asked whether he wants to 
  504. order it.  Orders are sent to a designated "fulfillment" address via normal 
  505. electronic mail.
  506.  
  507. The information finder is an application that maintains a database of 
  508. expertise within an organization.  Users are encouraged to send questions on 
  509. any topic to the information finder, which will use ATOMICMAIL to ask the 
  510. question of one or more relevant experts.  If the experts don't know the 
  511. answers, they are asked to suggest other experts, who are then surveyed in 
  512. turn.  This process continues, spreading out to more specialized and possibly 
  513. more distant experts, until an answer is obtained that satisfies the user.
  514.  
  515. The activist alert mechanism is a program that shows its recipient a brief text 
  516. explaining a "hot" political issue.  It then asks if the user wants to lobby his or 
  517. her elected officials on this topic.  If the user assents, the program verifies the 
  518. names of the user's elected representatives, and either generates a paper 
  519. copy of a letter to those representatives or sends a fax to them directly.  
  520. Finally, it asks the user if there are any other people to whom the alert 
  521. should be redistributed.
  522.  
  523. The "Name That Tune" game is an ATOMICMAIL version of the familiar game 
  524. show.  All of the "bidding" steps in the game are conducted via ATOMICMAIL.  
  525. In the final step of the game, a multipart message, including both audio and 
  526. ATOMICMAIL, is used to play the tune and ask the user to name it.
  527.  
  528. Earlier, ATOMICMAIL was also used to prototype another mail-related 
  529. service, dynamic mailing lists.  In this service, a message to a mailing list 
  530. contained, in addition to its normal text, an ATOMICMAIL component that 
  531. asked people whether or not they wanted to take part in further discussions 
  532. on the same topic.  In this case, although ATOMICMAIL facilitated a quick 
  533. prototype, it soon became obvious that the functionality was better 
  534. accomplished by modifying the message reading software so that even plain 
  535. text messages could be the start of new dynamic mailing lists.
  536.  
  537. Future Work
  538.  
  539. There are many directions for the future of ATOMICMAIL.  Beyond additional 
  540. and enhanced ATOMICMAIL application services, there are several other 
  541. promising directions for future work.  A graphical interpreter for the current 
  542. ATOMICMAIL language would both further demonstrate the interface-
  543. independence of the language and make the execution of ATOMICMAIL 
  544. programs much more pleasant for those who could use it.  By incorporating 
  545. cryptographic techniques and digital signatures, it should be possible to 
  546. extend ATOMICMAIL's capabilities to allow users to permit more dangerous 
  547. actions to be executed when the mail is authenticated as coming from a 
  548. trusted source.  Another direction for extension would be to relax somewhat 
  549. the assumptions about user interface environments.  For example, an 
  550. ATOMICMAIL-like language that presumed the presence of a bitmap display 
  551. might permit substantially more interesting applications to be developed.   
  552. Overall, there is no shortage of promising new directions for research on 
  553. computational electronic mail.
  554.  
  555. Acknowledgements
  556.  
  557. The ATOMICMAIL project has been made possible by the enlightened 
  558. management with which Bellcore is generally blessed.  The development of 
  559. the language and the prototype software has benefited greatly from the many 
  560. clever people who have helped me with useful suggestions and 
  561. encouragement, including Bob Kraut, Al Buzzard, Jonathan Rosenberg, Louis 
  562. Gomez, John Patterson, Steve Rohall, Ralph Hill, Will Leland, Peter Clitherow, 
  563. Shoshana Hardt-Kornacki, Steve Uhler, Mike Bianchi, Scott Stornetta, Michael 
  564. Littman, Ron Underwood, Mike O'Dell, Nat Howard, Dana Chee, Mark Segal, 
  565. Steve Butera, Dave Sincoskie, Mark Donadio, Laurence Brothers, and, no doubt, 
  566. others whom I have inadvertently omitted.
  567.  
  568. References
  569.  
  570. [Ackerman and Malone, 1990]  Ackerman, M. and Malone, T., "Answer Garden:  
  571. A Tool for Growing Organizational Memory", Proceedings of the Conference on 
  572. Office Information Systems, Cambridge, Massachusetts, 1990]
  573.  
  574. [Anderson and Gillogly, 1976]  Anderson, R. H., and J. J. Gillogly, "Rand 
  575. Intelligent Terminal Agent (RITA): Design Philosophy", Rand Corporation 
  576. Technical Memorandum R-1809-ARPA, February, 1976.
  577.  
  578. [Arnold, 1984]  Arnold, Kenneth C. R. C., "Screen Updating and Cursor 
  579. Movement Optimization:  A Library Package", UNIX Programmer's Manual 
  580. Supplementary Documents, USENIX Association, 1984.
  581.  
  582. [Borenstein, 1990] Borenstein, Nathaniel S., "MAGICMAIL Language Reference 
  583. Manual", Bellcore Technical Memorandum.
  584.  
  585. [Borenstein, 1991a]  Borenstein, Nathaniel S., and Chris A. Thyberg, "Power, 
  586. Ease of Use, and Cooperative Work in a Practical Multimedia Message System", 
  587. International Journal of Man-Machine Studies, April, 1991.
  588.  
  589. [Borenstein, 1991b] Borenstein, Nathaniel S., "Multimedia Electronic Mail:  Will 
  590. the Dream Become Reality?", Communications of the ACM, April, 1991.
  591.  
  592. [Forsdick, 1984]  Forsdick, H.C., Thomas, R.H., Robertson, G. G., and Travers, V. 
  593. M., "Initial Experience with Multimedia Documents in Diamond", Computer 
  594. Message Service, Proceedings IFIP 6.5 Working Conference, IFIP, 1984.
  595.  
  596. [Grudin, 1990]   Grudin, J., "Seven plus one challenges for Groupware 
  597. Developers", Rev. of DAIMI PB 323 Aarhus University Computer Science 
  598. Department.
  599.  
  600. [Hansen, 1990]  Hansen, W. Fred, "Enhancing Documents with Embedded 
  601. Programs:  How Ness Extends Insets in the Andrew Toolkit", Proceedings of 
  602. IEEE Computer Society 1990 International Conference on Computer 
  603. Languages, New Orleans, 1990.
  604.  
  605. [Hogg, 1985]  Hogg, John, "Intelligent Message Systems", in Office Automation, 
  606. D. Tsichritzis, editor, Springer-Verlag, 1985.
  607.  
  608. [Kernighan and Ritchie, 1978]  Kernighan, Brian W., and Dennis M. Ritchie, The 
  609. C Programming Language, Prentice-Hall, 1978.
  610.  
  611. [Shepherd, 1990]  Shepherd, Allan, Niels Mayer, and Allan Kuchinsky, "Strudel 
  612. -- An Extensible Electronic Conversation Toolkit", Proceedings of CSCW '90, 
  613. October, 1990.
  614.  
  615. [Spafford, 1989]  Spafford, Eugene H., "The Internet Worm: Crisis and 
  616. Aftermath," Communications of the ACM, June, 1989.
  617.  
  618. [Steele, 1990]  Steele, Guy L., Common Lisp:  The Language, Second Edition, 
  619. Digital Press, 1990.
  620.  
  621. [Vittal, 1981]  Vittal, John, "Active Message Processing:  Messages as 
  622. Messengers", in Computer Message Systems, R. P. Uhlig, editor, North-Holland 
  623. Publishing Company, 1981.
  624.  
  625.  
  626.  
  627. Figures
  628.  
  629. Figure 1 -- program code for a simple survey
  630.  
  631. Figure 2 -- The ATOMICMAIL help screen
  632.  
  633. Figure 3 -- An ATOMICMAIL survey
  634.  
  635. 1It should be noted that no ethically-trained software engineer would ever consent to 
  636. write a "DestroyBaghdad" procedure.  Basic professional ethics would instead require 
  637. him to write a "DestroyCity" procedure, to which "Baghdad" could be given as a 
  638. parameter.
  639. 2The original name for this language was MAGICMAIL, which stands for "Messages that 
  640. are Active Generate Innovation and Cooperation, but Mustn't Allow Internet Larceny."  
  641. Unfortunately, a trademark was unavailable, so the language has been renamed 
  642. ATOMICMAIL, which stands for "A Trademark On MAGICMAIL is Impossible; Clearly 
  643. Monikers Are Inhibited by Legalisms."
  644.  
  645.